import { app, BrowserWindow } from 'electron'
import path from 'node:path'
// CommonJS 环境下不需要这些导入和处理
// import { fileURLToPath } from 'url'
// const __filename = fileURLToPath(import.meta.url)
// const __dirname = path.dirname(__filename)

// __dirname 在 CommonJS 中是全局可用的

function createWindow() {
  const win = new BrowserWindow({
    width: 1000,
    height: 800,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false
    }
  })

  // 在开发环境中加载 Vite dev server
  if (process.env.VITE_DEV_SERVER_URL) {
    win.loadURL(process.env.VITE_DEV_SERVER_URL)
    win.webContents.openDevTools()
  } else {
    // 在生产环境中加载打包后的文件
    const indexPath = path.join(__dirname, '../dist/index.html')
    win.loadFile(indexPath)
    
    // 添加资源加载错误处理
    win.webContents.on('did-fail-load', (event, errorCode, errorDescription) => {
      console.error('页面加载失败:', errorCode, errorDescription)
      // 尝试重新加载
      setTimeout(() => {
        win.loadFile(indexPath)
      }, 1000)
    })
    
    // 优化资源加载
    win.webContents.session.setPreloads([])
    
    // 设置CSP头以优化资源加载
    win.webContents.session.webRequest.onHeadersReceived((details, callback) => {
      callback({
        responseHeaders: {
          ...details.responseHeaders,
          'Content-Security-Policy': ["default-src 'self' 'unsafe-inline' 'unsafe-eval' data:"]
        }
      })
    })
    
    // 禁用不必要的功能
    win.webContents.setAudioMuted(true) // 如果不需要音频
    win.webContents.session.setPermissionRequestHandler((webContents, permission, callback) => {
      callback(false) // 默认拒绝所有权限请求
    })
  }
}

app.whenReady().then(() => {
  createWindow()

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})